package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Setmeal;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface SetmealDao {


    //分页查询
    Page<Setmeal> findByCondition(String queryString);
    //新建套餐
    void save(Setmeal setmeal);
    //设置套餐与检查组的关联关系
    void setSetmealAndCheckGroup(Map<String, Integer> map);
    //根据id查询套餐
    Setmeal findById(Integer setmealId);
    //根据套餐id查询检查组
    Integer[] findCheckgroupIdsBysetmealId(Integer setmealId);
    //将套餐对象信息传递给持久层更新套餐信息
    void update(Setmeal setmeal);
    //据套餐id先清空套餐与检查项的关联数据
    void deleteBysetmealId(Integer id);
    //根据id删除检查组
    void deleteById(Integer setmealId);
    //查询所有套餐信息
    List<Setmeal> getAllSetmeal();
    //1.根据套餐ID查询套餐详细信息（包括套餐基本信息、套餐包含的检查组、检查组包含的检查项）
    Setmeal findBySetmealId(Integer setmealId);
    //2.根据套餐ID查询套餐详细信息（包括套餐基本信息、套餐包含的检查组、检查组包含的检查项）
    Setmeal findSetmealById(Integer setmealId);
    //统计套餐预约情况
    List<Map<String, Object>> findSetmealCount();
    //获取总套餐收入
    Integer totalIncome(@Param("startTime") String startTime, @Param("endTime") String endTime);
    //获取每个套餐的收入
    List<Map<String,Object>> findSetmealIncomeCount(@Param("startTime") String startTime,@Param("endTime")String endTime);

    //获取总套餐收入(默认页面)
    Integer totalIncome1();
    //获取每个套餐的收入(默认页面)
    List<Map<String,Object>> findSetmealIncomeCount1();


    Setmeal findSetmealByOrderId(Integer orderId);
}
